// 2025/7/17
// 过河卒

#include <iostream>
#include <vector>
using namespace std;

vector<pair<int, int>> relpos = {{-2, -1}, {-1, -2}, {1, -2}, {2, -1}, {2, 1}, {1, 2}, {-1, 2}, {-2, 1}, {0, 0}};

int main() {
    int m, n, x, y;
    cin >> m >> n >> x >> y;
    vector<vector<long long>> board(m + 1, vector<long long>(n + 1, -1));
    for(auto& pos : relpos)
    {
        int i = x + pos.first, j = y + pos.second;
        if(i >= 0 && i <= m && j >= 0 && j <= n)
            board[i][j] = 0;
    }
    board[0][0] = 1;
    for(int i = 1; i <= m; i++)
    {
        if(board[i][0] != 0)
            board[i][0] = board[i - 1][0];
    }
    for(int j = 1; j <= n; j++)
    {
        if(board[0][j] != 0)
            board[0][j] = board[0][j - 1];
    }
    for(int i = 1; i <= m; i++)
    {
        for(int j = 1; j <= n; j++)
        {
            if(board[i][j] == -1)
                board[i][j] = board[i - 1][j] + board[i][j - 1];
        }
    }
    cout << board[m][n] << endl;
}
// 64 位输出请用 printf("%lld")